﻿using KAs.SeviceRegister.Interface;
using Serilog.Events;

namespace KAs.Logger;

public interface ILogService : ISingletonDependency
{
    /// <summary>
    /// 记录log(information)
    /// </summary>
    /// <param name="message">日志信息</param>
    /// <param name="logBusinessType">日志业务类型</param>
    /// <param name="businessKey">业务主键</param>
    public void LogInformation(string message, LogBusinessTypeEnum logBusinessType = LogBusinessTypeEnum.System, string businessKey = "Default");
    /// <summary>
    /// 记录log(Warning)
    /// </summary>
    /// <param name="message">日志信息</param>
    /// <param name="logBusinessType">日志业务类型</param>
    /// <param name="businessKey">业务主键</param>
    public void LogWarning(string message, LogBusinessTypeEnum logBusinessType = LogBusinessTypeEnum.System, string businessKey = "Default");
    /// <summary>
    /// 记录log(Error)
    /// </summary>
    /// <param name="message">日志信息</param>
    /// <param name="logBusinessType">日志业务类型</param>
    /// <param name="businessKey">业务主键</param>
    public void LogError(string message, LogBusinessTypeEnum logBusinessType = LogBusinessTypeEnum.System, string businessKey = "Default");
    /// <summary>
    /// 记录log(Fatal)
    /// </summary>
    /// <param name="message">日志信息</param>
    /// <param name="logBusinessType">日志业务类型</param>
    /// <param name="businessKey">业务主键</param>
    public void LogFatal(string message, LogBusinessTypeEnum logBusinessType = LogBusinessTypeEnum.System, string businessKey = "Default");
    /// <summary>
    /// 记录log(information)
    /// </summary>
    /// <param name="message">日志信息</param>
    /// <param name="logBusinessType">日志业务类型</param>
    /// <param name="businessKey">业务主键</param>
    /// <param name="logEventLevel">日志事件级别</param>
    public void Log(string message, LogBusinessTypeEnum logBusinessType = LogBusinessTypeEnum.System, string businessKey = "Default", LogEventLevel logEventLevel = LogEventLevel.Information);
}

